// FriendService.java
package com.baoyouqun.API.friend;

import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.fastjson2.JSONObject;
import com.baoyouqun.API.friend.domain.*;
import com.baoyouqun.base.PageResponse;

public interface FriendService {

    SingleResponse<JSONObject> getFriend(String userId);

    // 获取好友列表
    MultiResponse<FriendVO> getFriendList();

    // 搜索好友
    MultiResponse<FriendVO> searchFriends(FriendSearchQuery query);

    // 添加好友
    Response addFriend(AddFriendCmd cmd);

    // 获取好友申请列表
    MultiResponse<FriendApplicationVO> getFriendApplications();

    // 处理好友申请
    Response handleFriendApplication(HandleFriendApplicationCmd cmd);

    // 更新好友备注
    Response updateFriendRemark(UpdateFriendRemarkCmd cmd);

    // 删除好友
    Response deleteFriend(String friendId);

    // 新增方法1: 分页查询公开豹友列表
    PageResponse<PublicFriendVO> getPublicFriendList(PublicFriendQuery query);

    // 新增方法2: 根据地理位置查询附近豹友数量
    SingleResponse<Integer> getNearbyFriendCount(NearbyFriendQuery query);

    // 新增方法3: 搜索公开豹友
    PageResponse<PublicFriendVO> searchPublicFriends(PublicFriendQuery query);


}